Vehicle speed-based compressor control

ABSTRACT

An apparatus on a vehicle comprises one or more sensors, one or more nozzles that output fluid to clean the respective one or more sensors, and a compressor that generates fluid such as compressed air. The compressor is in fluid communication with the one or more nozzles. The apparatus further comprises one or more processors, and a memory storing instructions that, when executed by the one or more processors, cause the system to determine a current velocity of the vehicle and control an operation of the compressor based on the current velocity of the vehicle.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Ser. No. 16/881,901, filed May 22, 2020, the content of which is incorporated by reference in its entirety into the present disclosure.

The present invention relates generally to sensor assembly cleaning systems and apparatuses and methods of operation thereof, and more particularly, in some embodiments, to sensor assembly cleaning systems and apparatuses that employ a compressor, the operation of which is adjusted based on a speed, predicted speed, other driving parameter of a vehicle, or other parameter.

BACKGROUND

A vehicle, such as an autonomous vehicle, includes a myriad of sensors that provide continuous streams of sensor data captured from the vehicle's surrounding environment. Such sensor data enables an autonomous vehicle to perform a number of functions that would otherwise be performed by a manual human operator including various vehicle navigation tasks such as vehicle acceleration and deceleration, vehicle braking, vehicle lane changing, adaptive cruise control, blind spot detection, rear-end radar for collision warning or collision avoidance, park assisting, cross-traffic monitoring, emergency braking, and automated distance control.

A vehicle such as an autonomous vehicle can include a variety of different types of on-board sensors including, for example, cameras, light detection and ranging (LiDAR) systems, radar systems, Global Positioning System (GPS) devices, sonar-based sensors, ultrasonic sensors, accelerometers, gyroscopes, magnetometers, inertial measurement units (IMUs), and far infrared (FIR) sensors. On-board vehicle sensors disposed on an exterior of a vehicle may be provided in or integrated with protective housing to protect the sensors from damage from the elements. The housing, however, can be subjected to environmental elements such as rain, heat, wind, dust, or the like that can impede the ability of sensors encased in the housing to perform their functions. Technical solutions that mitigate the effect of such factors on sensor performance and enhance the functional capabilities of sensors are described herein.

SUMMARY

In some embodiments, an apparatus on a vehicle comprises one or more sensors; one or more nozzles configured to output fluid to clean the respective one or more sensors; and a compressor configured to generate the fluid, the compressor being in fluid communication with the one or more nozzles; one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the system to perform: determining a current velocity of the vehicle; controlling an operation of the compressor based on the current velocity of the vehicle.

In some embodiments, the apparatus further comprises a reservoir disposed between the compressor and a respective nozzle of the one or more nozzles, the reservoir configured to store an amount of the fluid; a pressure sensor configured to determine a fluid pressure inside the reservoir; and the instructions further cause the system to perform: determining whether a sensor of the one or more sensors is to be cleaned; in response to determining that the sensor is to be cleaned, and in response to the fluid pressure inside the reservoir satisfying a threshold pressure, expelling a portion of the fluid from a respective nozzle of the nozzles towards the sensor.

In some embodiments, the determining whether the sensor is to be cleaned comprises: determining whether a concentration of one or more foreign substances on the sensor satisfying a threshold concentration; and in response to determining that the concentration of the one or more foreign substances on the sensor satisfies the threshold concentration, determining that the sensor is to be cleaned.

In some embodiments, the determining whether the sensor is to be cleaned comprises: in response to determining that the concentration of the one or more foreign substances on the sensor fails to satisfy the threshold concentration, determining that the sensor is not to be cleaned; and the instructions further cause the system to perform: in response to determining that the sensor is not to be cleaned, shutting off a flow of the fluid from the nozzle.

In some embodiments, the controlling the operation of the compressor comprises determining an operating pressure range of the compressor based on a traffic signal.

In some embodiments, the controlling the operation of the compressor comprises determining an operating pressure range of the compressor based on the current velocity of the vehicle.

In some embodiments, the instructions further cause the system to perform: predicting a future velocity of the vehicle; and the controlling the operation of the compressor comprises determining an operating pressure range of the compressor based on the predicted future velocity of the vehicle.

In some embodiments, the instructions further cause the system to perform: predicting a start of a navigation event of the vehicle; and synchronizing an adjustment of an operating pressure range of the compressor with the predicted start of the navigation event of the vehicle.

In some embodiments, the controlling the operation of the compressor comprises determining an operating pressure range of the compressor based on a frequency of cleaning of the one or more sensors.

In some embodiments, the instructions further cause the system to perform: determining a current acceleration of the vehicle; predicting a future acceleration of the vehicle; and the controlling the operation of the compressor comprises determining an operating pressure range of the compressor based on any of the current acceleration of the vehicle or the predicted future acceleration of the vehicle.

In some embodiments, the controlling the operation of the compressor comprises determining an amount of traffic; and determining an operating pressure range of the compressor based on an amount of traffic.

In some embodiments, reservoirs may be disposed between the compressor and the nozzles. Each of the reservoirs may be configured to store an amount of the fluid. Exit pressures may be different at each of the respective nozzles. The instructions may further cause the system to perform, determining a concentration of one or more foreign substances on a sensor of the one or more sensors; and selecting one of the reservoirs from which to expel a portion of the fluid based on the determined concentration of the one or more foreign substances.

Various embodiments of the present disclosure provide a method implemented by a computing system including one or more processors and storage media storing machine-readable instructions, wherein the method is performed using the one or more processors. The method may comprise generating, by a compressor of a vehicle, a fluid; determining a current velocity of the vehicle; controlling an operation of the compressor based on the current velocity of the vehicle; and outputting, by one or more nozzles in fluid communication with the compressor, the fluid to one or more respective sensors to clean the respective one or more sensors.

In some embodiments, the method further comprises: storing an amount of the fluid in a reservoir disposed between the compressor and a respective nozzle of the one or more nozzles; determining, using a pressure sensor, a fluid pressure inside the reservoir; determining whether a sensor of the one or more sensors is to be cleaned; and in response to determining that the sensor is to be cleaned, and in response to the fluid pressure inside the reservoir satisfying a threshold pressure, expelling a portion of the fluid from a respective nozzle of the nozzles towards the sensor.

In some embodiments, the determining whether the sensor is to be cleaned comprises: determining whether a concentration of one or more foreign substances on the sensor satisfies a threshold concentration; and in response to determining that the concentration of the one or more foreign substances on the sensor satisfies the threshold concentration, determining that the sensor is to be cleaned.

In some embodiments, the determining whether the sensor is to be cleaned comprises: in response to determining that the concentration of the one or more foreign substances on the sensor fails to satisfy the threshold concentration, determining that the sensor is not to be cleaned; and the method further comprises: in response to determining that the sensor is not to be cleaned, shutting off a flow of the fluid from the nozzle.

In some embodiments, the method further comprises: predicting a future velocity of the vehicle; and the controlling the operation of the compressor comprises determining an operating pressure range of the compressor based on the predicted future velocity of the vehicle.

In some embodiments, the method further comprises: predicting a start of a navigation event of the vehicle; and synchronizing an adjustment of an operating pressure range of the compressor with the predicted start of the navigation event of the vehicle.

In some embodiments, the method further comprises: determining a current acceleration of the vehicle; predicting a future acceleration of the vehicle; and the controlling the operation of the compressor comprises determining an operating pressure range of the compressor based on any of the current acceleration of the vehicle or the predicted future acceleration of the vehicle.

In some embodiments, the method further comprises: storing amounts of the fluid in each of respective reservoirs disposed between the compressor and the nozzles, each of the respective reservoirs having different exit pressures; determining a concentration of one or more foreign substances on a sensor of the one or more sensors; and selecting one of the reservoirs from which to expel a portion of the fluid based on the determined concentration of the one or more foreign substances.

These and other features of the apparatuses, systems, methods, and non-transitory computer readable media disclosed herein, as well as the methods of operation and functions of the related elements of structure and the combination of parts and economies of manufacture, will become more apparent upon consideration of the following description and the appended claims with reference to the accompanying drawings, all of which form a part of this specification, wherein like reference numerals designate corresponding parts in the various figures. It is to be expressly understood, however, that the drawings are for purposes of illustration and description only and are not intended as a definition of the limits of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of various embodiments of the present technology are set forth with particularity in the appended claims. A better understanding of the features and advantages of the technology will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings of which:

FIG. 1A illustrates a sensor cleaning apparatus in accordance with an example embodiment of the present disclosure.

FIG. 1B illustrates an aftercooler associated with the sensor cleaning apparatus in accordance with an example embodiment of the present disclosure.

FIG. 1C illustrates a vehicle associated with the sensor cleaning apparatus in accordance with an example embodiment of the present disclosure.

FIG. 1D illustrates an example of a relationship to clarify an example operation of a compressor of the sensor cleaning apparatus. In FIG. 1D, a relationship between a velocity of a vehicle, an operating pressure range, and a cutoff pressure is shown.

FIG. 2 illustrates a compressor of the sensor cleaning apparatus in accordance with an example embodiment of the present disclosure.

FIG. 3 illustrates a sensor cleaning apparatus in accordance with an example embodiment of the present disclosure.

FIG. 4 illustrates an exemplary vehicle on which the sensor cleaning apparatus is being implemented.

FIG. 5 illustrates an exemplary implementation of the sensor cleaning apparatus.

FIG. 6 is a process flow diagram of an illustrative method for cleaning one or more sensors in accordance with an example embodiment of the present disclosure.

FIG. 7 is a schematic block diagram illustrating an example networked architecture configured to implement example embodiments of the present disclosure.

DETAILED DESCRIPTION

In the following description, certain specific details are set forth in order to provide a thorough understanding of various embodiments of the invention. However, one skilled in the art will understand that the invention may be practiced without these details. Moreover, while various embodiments of the invention are disclosed herein, many adaptations and modifications may be made within the scope of the invention in accordance with the common general knowledge of those skilled in this art. Such modifications include the substitution of known equivalents for any aspect of the invention in order to achieve the same result in substantially the same way.

FIG. 1A illustrates a sensor cleaning apparatus 100 comprising a compressor 102 and a computing system 103 that controls operations of the compressor 102 and/or other related components described below. The computing system 103 may comprise one or more processors. The compressor 102 may be configured to generate a fluid such as compressed air. In some examples, the compressor 102 may operate adiabatically, isothermally, or transitionally from adiabatic to isothermal. An absolute pressure of the generated compressed air may be between 2 atmospheres and 100 atmospheres in absolute pressure. Downstream of the compressor 102, a first connection 110 may be fastened, secured, directly connected, or otherwise fluidly connected to the compressor 102. The first connection 110 may comprise a pipe or a duct. The first connection 110 may be fastened, secured, directly connected, or otherwise fluidly connected to an aftercooler 112 that cools the air from the compressor 102. In some embodiments, as shown in FIG. 1B, the aftercooler 112 may comprise a spiral finned tube coil or a plate-fin coil with baffle plates and a motor-driven fan. In some examples, the aftercooler 112 may further comprise a moisture separator, that mechanically separates most or all of liquid moisture condensed from, and solids from the compressed air. In some examples, the baffle plates may utilize centrifugal force to accumulate the moisture and solids at a bottom of the moisture separator. In some examples, the aftercooler 112 may further comprise a drain may remove the moisture and solids.

The aftercooler 112 may be fastened, secured, directly connected, or otherwise fluidly connected to a second connection 120 of FIG. 1A. The second connection 120 may comprise a pipe or a duct. The second connection 120 may be fastened, secured, directly connected, or otherwise fluidly connected to a reservoir 122 that stores an amount of the fluid such as the compressed air. The reservoir 122 may store the fluid at a pressure p_(r).

The reservoir 122 may be fastened, secured, directly connected, or otherwise fluidly connected to a third connection 130. The third connection 130 may comprise a pipe or a duct. The third connection 130 may be fastened, secured, directly connected, or otherwise fluidly connected to a filter 132 that further filters dust and solid particulates from the fluid or compressed air. The filter 132 may be fastened, secured, directly connected, or otherwise fluidly connected to a fourth connection 140. The fourth connection 140 may comprise a pipe or a duct. The fourth connection 140 may be fastened, secured, directly connected, or otherwise fluidly connected to a dryer 142 that further dries the fluid or compressed air. The dryer 142 may be fastened, secured, directly connected, or otherwise fluidly connected to a fifth connection 150. The fifth connection 150 may comprise a pipe or a duct. Along the fifth connection 150, a first valve 152 and a second valve 154 may control or restrict a flow of the fluid or the compressed air. In some embodiments, the first valve 152 and the second valve 154 may comprise check valves. In some embodiments, the first valve 152 and the second valve 154 may be electronically controlled. At an end of the fifth connection 150, a nozzle 156 may direct the fluid or the compressed air towards a sensor 160 to be cleaned. The pressure of the fluid or the compressed air leaving the nozzle 156 may be a discharge pressure p_(e). The sensor cleaning apparatus 100 may be implemented as part of a vehicle 170, as shown in FIG. 1C.

In some embodiments, the computing system 103 may control the first valve 152 based on the pressure p_(r) inside the reservoir 122. In some embodiments, the discharge pressure p_(c) may be lower than p_(r) due to a pressure loss from the reservoir 122 to the nozzle 156. The computing system 103 may determine a threshold value or range of values of the discharge pressure p_(e), indicating a minimum amount of pressure, a maximum amount of pressure, and/or a range of pressures for sensor cleaning operations. For example, the computing system 103 may determine that sensor cleaning operations can be safely and effectively done with an absolute pressure range of 2 to 10 atmospheres in absolute pressure. From the threshold value or range of values of the discharge pressure p_(e), the computing system 103 may determine a corresponding threshold value or range of values of p_(r) by taking into account actual or expected pressure losses as the compressed air or the fluid is transported from the reservoir 122 to the nozzle 156. For example, the computing system 103 may determine that the corresponding range of values of p_(r) is between 2.5 and 12.5 atmospheres in absolute pressure, based on a 20% pressure loss at a given temperature of the compressed air or the fluid from the reservoir 122 to the nozzle 156. In some examples, if the current pressure p_(r) satisfies the threshold value or range of values of p_(r), the computing system 103 may control the first valve 152 to allow the fluid or the compressed air to go through the fifth connection 150 towards the nozzle 156. If the current pressure p_(r) fails to satisfy the threshold value or range of values of p_(r), the computing system 103 may control the first valve 152 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 150 towards the nozzle 156. For example, if the current pressure p_(r) is outside the range of 2.5 and 12.5 atmospheres in absolute pressure, the computing system 103 may control the first valve 152 to block a flow of the fluid or compressed air through the fifth connection 150 and prevent the fluid or the compressed air from exiting at the nozzle 156. In some embodiments, the computing system 103 may control the first valve 152 to always be open and permit fluid or compressed air to flow through the fifth connection 150.

In some embodiments, the computing system 103 may control an operation of the second valve 154 based on a condition of the sensor 160. The condition of the sensor 160 may comprise a concentration of one or more foreign substances, such as any of dirt, dust, or moisture, on the sensor 160. In some examples, the condition of the sensor 160 may comprise a dust particle concentration in air surrounding the sensor 160, within a threshold distance of the sensor 160, such as a distance within 10 meters of the sensor 160. In some examples, the condition of the sensor 160 may comprise a distribution of dust particle sizes. In some examples, the condition of the sensor 160 may comprise an air quality in the air surrounding the sensor 160. In some examples, a dust sensor 159 positioned at the nozzle 156 may determine the dust particle concentration in the surrounding air, and the distribution of dust particle sizes. The dust sensor 159 may comprise an infrared light emitting diode and a photosensor, which may detect the reflected infrared light emitting diode light due to dust particles in air.

If the condition of the sensor 160 indicates that the sensor 160 requires cleaning, for example, if a concentration of one or more foreign substances such as dust satisfies a threshold concentration, the computing system 103 may control the second valve 154 to allow the fluid or the compressed air to go through the fifth connection 150 towards the nozzle 156. In some examples, if the average dust particle size satisfies a threshold size, the computing system 103 may control the second valve 154 to allow the fluid or the compressed air to go through the fifth connection 150 towards the nozzle 156. In some examples, if the air quality index is higher than a threshold index, the computing system 103 may control the second valve 154 to allow the fluid or the compressed air to go through the fifth connection 150 towards the nozzle 156. If the condition of the sensor 160 indicates that the sensor 160 does not require cleaning, for example, if a concentration of one or more foreign substances such as dust falls short of a threshold concentration, the computing system 103 may control the second valve 154 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 150 towards the nozzle 156. In some examples, if the average dust particle size falls short of a threshold size, the computing system 103 may control the second valve 154 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 150 towards the nozzle 156. In some examples, if the air quality index is less than or equal to a threshold index, the computing system 103 may control the second valve 154 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 150 towards the nozzle 156. In some examples, the computing system 103 may control the second valve 154 to always permit the fluid or the compressed air to pass to the nozzle 156. In some examples, the computing system 103 may control the second valve 154 to permit the fluid or the compressed air to pass to the nozzle as long as the sensor 160 requires cleaning, for example, if the concentration of one or more foreign substances satisfies the threshold concentration, and once the sensor 160 does not require cleaning, for example, if the concentration of the one or more foreign substances no longer satisfies the threshold concentration, the computing system 103 may control the second valve 154 to block the fluid or the compressed air and prevent the fluid or compressed air from exiting the nozzle 156.

In some embodiments, the computing system 103 may control an operation of the second valve 154 based on a traffic condition and/or a road condition. In some examples, if a traffic condition and/or a road condition requires use of the sensor 160, the computing system may control the second valve 154 to block the fluid or the compressed air and prevent the fluid or compressed air from exiting the nozzle 156, in order to prevent the cleaning of the sensor 160. In some examples, the computing system 103 may determine an amount, concentration, or distribution of traffic, and determine whether or not to close off a flow of the fluid or the compressed air through the second valve 154, based on the amount, concentration, or distribution of traffic and/or predicted traffic. For example, if a level of traffic is currently or is predicted to be heavy, the computing system 103 may determine to close off the flow through the second valve 154. In another example, if a road has a high concentration of bumps, or obstacles, or has a high slope, or a weather condition is inclement, the computing system 103 may determine to close off the flow through the second valve 154.

In some embodiments, the computing system 103 may control an operation of the compressor 102 based on any of: a current velocity of the vehicle 170, the current pressure p_(r), a traffic signal, a future predicted velocity of the vehicle 170, a desired or preset frequency of cleaning of the sensor 160 and/or other sensors, a current acceleration of the vehicle 170, a future acceleration of the vehicle 170, or an amount of traffic. In some embodiments, the operation of the compressor 102 may be based on an operating pressure range, also known as an operating range of pressures, of the compressor 102. The operating pressure range of the compressor 102 may be a range of pressures of p_(r) inside the reservoir 122 during which the compressor 102 is turned on to generate the fluid or compressed air. For example, if the operating pressure range of the compressor 102 is between 1 atmosphere and 10 atmospheres in absolute pressure, the compressor 102 may be turned on if the pressure p_(r) inside the reservoir 122 is between 1 atmosphere and 10 atmospheres, but the compressor 102 may be turned off if the pressure p_(r) inside the reservoir 122 is outside the operating pressure range of between 1 atmosphere and 10 atmospheres in absolute pressure. In some embodiments, the computing system 103 may, as the pressure p_(r) inside the reservoir 122 decreases, keep the compressor 102 off until the pressure p_(r) inside the reservoir 122 reaches a cutoff pressure. For example, the computing system 103 may keep the compressor 102 off even as the pressure p_(r) inside the reservoir 122 decreases below 10 atmospheres absolute pressure, until the pressure p_(r) inside the reservoir 122 reaches a cutoff pressure of, for example, 2 atmospheres, and then turn on the compressor 102. In this manner, the computing system 103 may ensure at least a residual supply of fluid or compressed air inside the reservoir 122.

In some embodiments, the operating range of pressures of p_(r) inside the reservoir 122, over which the compressor 102 operates, may be determined or changed based on any of, or a combination of, a current velocity of the vehicle 170, a current velocity of one or more other vehicles near the vehicle 170, the current pressure p_(r), a traffic signal, a future predicted velocity of the vehicle 170 or other nearby vehicles, a desired or preset frequency of cleaning of the sensor 160 and/or other sensors, a current acceleration of the vehicle 170 or of other nearby vehicles, a predicted future acceleration of the vehicle 170 or of other vehicles, or an amount of traffic. In some examples, if the vehicle 170 is in an idle state or an engine off state, the operating range of pressures of p_(r) inside the reservoir 122, over which the compressor 102 operates, may be adjusted to be narrower compared to the operating range of pressures of p_(r) inside the reservoir 122 if the vehicle 170 were actually driving. For example, if the vehicle 170 were in an idle state or an engine off state, the operating range of pressures of p_(r) inside the reservoir 122 may only be from 1 atmosphere to 5 atmospheres absolute pressure compared to 1 atmosphere to 10 atmospheres absolute pressure in the scenario in which the vehicle 170 were actually driving. Additionally, the cutoff pressure of p_(r) may be 1.5 atmospheres if the vehicle 170 were in an idle state or an engine off state compared 2 atmospheres in the scenario in which the vehicle 170 were actually driving. Thus, the computing system 103 may wait until the pressure p_(r) inside the reservoir 122 drops to 1.5 atmospheres before actually turning on the compressor 102. Therefore, when the vehicle 170 is idle, has its engine off, or is otherwise not operating, the computing system 103 may control the compressor 102 to operate less frequently and generate less noise. In some embodiments, the computing system 103 may predict a specific time at which the vehicle 170 switches from an engine off state and turns on the engine, or when the vehicle 170 switches from the idle state to a driving state, for example, when a traffic light turns from red to green, or after the vehicle restarts following a stop sign. The computing system 103 may synchronize the predicted time of the switch from the engine off state or from the idle state with an adjustment of the operating pressure range of the compressor 102. For example, the computing system 103 may adjust the operating pressure range of the compressor 102 at a same time as the predicted time of the switch. For example, if the predicted time of the switch is at 10:00 AM GMT, the computing system 103 may adjust the operating pressure range of the compressor 102 by widening the operating range of pressures of p_(r) at the same time as the predicted time of the switch. For example, the operating pressure range of the compressor 102 may be widened from a range between 1 atmosphere and 5 atmospheres absolute pressure to a range between 1 atmosphere and 8 atmospheres absolute pressure.

In some embodiments, an increase in a velocity of the vehicle 170, and/or an increase in a frequency of engine rotation of the vehicle 170, may cause or result in a widening in the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates. For example, if the current velocity of the vehicle 170 is 70 miles per hour, the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates may be 1 atmosphere to 7 atmospheres absolute pressure. If the velocity of the vehicle 170 increases to 80 miles per hour, the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates may be 1 atmosphere to 8 atmospheres absolute pressure. If the velocity of the vehicle 170 decreases to 60 miles per hour, the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates may be 1 atmosphere to 6 atmospheres absolute pressure. In some embodiments, in response to the velocity of the vehicle 170 increasing, the cutoff pressure may also increase, for example, from 2.1 atmospheres to 2.4 atmospheres absolute pressure. In some embodiments, an upper bound of the operating range of pressures of p_(r) inside the reservoir 122, in absolute pressure, may be proportional to the current velocity of the vehicle 170 or the frequency of engine rotation of the vehicle 170, in revolutions per minute (RPM), while a lower bound of the operating range of pressures of p_(r) inside the reservoir 122 may be kept constant over all predicted future velocities or predicted frequencies of engine rotation. The cutoff pressure may be regulated in a correlated manner with the upper bound of the operating range. Thus, in response to the upper bound of the operating range increasing, the cutoff pressure may also increase. An amount of increase of the cutoff pressure may be proportional to an amount of increase of the upper bound of the operating range. For example, if the upper bound of the operating range increases from 7 atmospheres absolute pressure to 8 atmospheres absolute pressure, the cutoff pressure may increase from 2.1 atmospheres absolute pressure to 2.4 atmospheres absolute pressure. A relationship between the velocity of the vehicle 170, the operating pressure range of the compressor 102, and the cutoff pressure of the compressor 102, is shown and further described with respect to FIG. 1D.

Similarly, an increase in a predicted future velocity of the vehicle 170, and/or an increase in a predicted future frequency of engine rotation of the vehicle 170, may cause or result in a widening in the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates. In some embodiments, in response to the predicted velocity of the vehicle 170 increasing, or in response to the predicted frequency of engine rotation of the vehicle 170 increasing, the cutoff pressure may also increase, for example, from 2.1 atmospheres to 2.4 atmospheres. In some examples, an upper bound of the operating range of pressures of p_(r) inside the reservoir 122, in absolute pressure, may be proportional to the predicted future velocity of the vehicle 170 or the predicted frequency of engine rotation of the vehicle 170, while a lower bound of the operating range of pressures of p_(r) may be kept constant over all predicted future velocities or predicted frequencies of engine rotation. In other examples, on the other hand, an increase in a predicted future velocity of the vehicle 170, and/or an increase in a predicted future frequency of engine rotation of the vehicle 170, may cause or result in a narrowing in the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates. Because the computing system 103 may anticipate that the velocity of the vehicle 170 may increase, which may result in a future increase in a noise level caused by an engine of the vehicle 170, the computing system 103 may control the compressor 102 to operate more frequently when the velocity of the vehicle 170 actually increases and less frequently before the velocity of the vehicle 170 actually increases. The computing system 103 may widen the operating range of pressures of p_(r) inside the reservoir 122 once the velocity of the vehicle 170 actually increases, but narrow the operating range of pressures of p_(r) before the velocity of the vehicle 170 increases. The cutoff pressure may be regulated in a correlated manner with the upper bound of the operating range. Thus, in response to the upper bound of the operating range increasing, the cutoff pressure may also increase. An amount of increase of the cutoff pressure may be proportional to an amount of increase of the upper bound of the operating range.

Similarly, an increase in an acceleration or a predicted future acceleration of the vehicle 170, may cause or result in a widening in the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates. A decrease in the acceleration or the predicted future acceleration of the vehicle 170 may cause or result in a narrowing in the operating range of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates. In some embodiments, in response to the acceleration or the predicted acceleration of the vehicle 170 increasing, the cutoff pressure may also increase, for example, from 2.1 atmospheres to 2.4 atmospheres. The amount of increase in the cutoff pressure may be proportional to the increase of the upper bound of the operating range of pressures of p_(r).

In some embodiments, the controlling the operation of the compressor 102 comprises determining an operating pressure range of the compressor 102 based on a traffic sign or signal. For example, if the vehicle 170 is approaching a red light or stop sign ahead, the computing system 103 may narrow the operating range of pressures of p_(r) inside the reservoir 122 because the vehicle 170 is anticipated to slow down. In some examples, if the vehicle 170 is approaching a traffic light ahead and the vehicle 170 is anticipated to speed up, the computing system 103 may widen the operating range of pressures of p_(r). In some examples, the computing system 103 may determine an amount, concentration, or distribution of traffic, and determine an operating pressure range of the compressor 102 based on the amount, concentration, or distribution of traffic and/or predicted traffic. For example, if the traffic is predicted to increase, the computing system 103 may narrow the operating range of pressures of p_(r) in order to reduce a frequency of operation of the compressor 102 and resulting noise. Additionally, the computing system 103 may reduce a frequency of cleaning the one or more sensors including the sensor 160 in conditions of higher traffic in order to prevent interference with a usage of the one or more sensors. In other examples, the computing system 103 may narrow the operating range of pressures of p_(r) in response to harsh road conditions such as bumps, high slope, and/or a concentration of obstacles on a road, in order to prevent interference with a usage of the one or more sensors. In other examples, the computing system 103 may clean sensors in response to harsh road conditions or heavy traffic, only if the sensors to be cleaned have other redundant operational sensors, and/or not clean redundant sensors simultaneously, but rather, space out a cleaning of the redundant sensors over time.

FIG. 1B illustrates an aftercooler 162, which may be implemented as the aftercooler 112 of FIG. 1A, associated with the sensor cleaning apparatus 100 in accordance with an example embodiment of the present disclosure. The aftercooler 162 may comprise an inlet 163 through which the fluid or compressed air enters, a heat exchanger 164 over which cooling air or cooling fluid cools the fluid or compressed air, a moisture separator 165 that mechanically separates most or all of liquid moisture condensed from, and solids from the compressed air, a moisture drain 166 that removes the moisture and solids, and an outlet 167 through which the fluid or compressed air exits.

FIG. 1C illustrates the vehicle 170 associated with the sensor cleaning apparatus in accordance with an example embodiment of the present disclosure. In some embodiments, the vehicle 170 may comprise a shock absorber 172, a control arm 174, a steering linkage 176, a subframe 178 that supports an engine and body of the vehicle, and to which a compressor such as the compressor 102 may be connected or mounted.

FIG. 1D illustrates an example of a relationship 180 that illustrates an example operation of a compressor such as the compressor 102 of FIG. 1A of the sensor cleaning apparatus 100, as controlled by a computing system such as the computing system 103. In FIG. 1D, the relationship between the velocity of a vehicle such as the vehicle 170 of FIG. 1C, the operating pressure range, and the cutoff pressure, as also described with reference to FIG. 1A, is shown. In FIG. 1D, a velocity 182 of the vehicle 170, an operating range 184 of pressures of p_(r) inside the reservoir 122 over which the compressor 102 operates or is actively generating compressed air or fluid, and a cutoff pressure 186 is shown. In response to an increase in the velocity 182, an upper bound of the operating range 184 and the cutoff pressure 186 may also increase. In response to a decrease in the velocity 182, an upper bound of the operating range 184 and the cutoff pressure 186 may also decrease.

FIG. 2 illustrates a compressor 200, which may be implemented as the compressor 102 of FIG. 1A, of the sensor cleaning apparatus 100, in accordance with an example embodiment of the present disclosure. In some embodiments, the compressor 200 may comprise a reciprocating compressor. The compressor 200 may comprise a power connection line 202, a pressure switch 204, a rod 206, a piston sleeve 208, a valve plate 210, an inlet valve 212, cooling fins 214, an inlet port 216, a piston 218, an air filter 220, a discharge port 222, a discharge valve 224, a discharge tube 226, a housing 228, a bearing 230, a safety valve 232, a fan 234, a regulator 236, a gauge 238, a check valve 240, an unloader tube 242, a storage tank 244, and a tube 246 through which air flows in. In some embodiments, the pressure switch 204 may be controlled by the computing system 103 of FIG. 1A based on the pressure p_(r) inside the reservoir 122 of FIG. 1A, and/or based on an internal pressure inside the compressor 102.

FIG. 3 illustrates a sensor cleaning apparatus 300 that provides different nozzles, each having different pressures of fluids or compressed air, to clean a sensor. The descriptions of the sensor cleaning apparatus 100 in FIG. 1A may also apply to the sensor cleaning apparatus 300. The sensor cleaning apparatus 300 may be implemented as part of the vehicle 170 of FIG. 1C. The sensor cleaning apparatus 300 may comprise a compressor 302 and a computing system 303 that controls operations of the compressor 302 and/or other related components described below. The computing system 303 may comprise one or more processors. The compressor 302 may be configured to generate a fluid such as compressed air. An absolute pressure of the generated compressed air may be between 2 atmospheres and 100 atmospheres in absolute pressure. Downstream of the compressor 302, a first connection 310 may be fastened, secured, directly connected, or otherwise fluidly connected to the compressor 302. The first connection 310 may comprise a pipe or a duct. The first connection 310 may be fastened, secured, directly connected, or otherwise fluidly connected to an aftercooler 312 that cools the air from the compressor 302. In some embodiments, the aftercooler 312 may comprise a spiral finned tube coil or a plate-fin coil with baffle plates and a motor-driven fan. In some examples, the aftercooler 312 may further comprise a moisture separator, that mechanically separates most or all of liquid moisture condensed from, and solids from the compressed air. In some examples, the baffle plates may utilize centrifugal force to accumulate the moisture and solids at a bottom of the moisture separator. In some examples, the aftercooler 312 may further comprise a drain may remove the moisture and solids.

The aftercooler 312 may be fastened, secured, directly connected, or otherwise fluidly connected to a second connection 320 of FIG. 1A. The second connection 320 may comprise a pipe or a duct. The second connection 320 may be fastened, secured, directly connected, or otherwise fluidly connected to a first reservoir 322 that stores an amount of the fluid such as the compressed air. The first reservoir 322 may store the fluid at a first pressure p_(r1).

The first reservoir 322 may be fastened, secured, directly connected, or otherwise fluidly connected to a third connection 330. The third connection 330 may comprise a pipe or a duct. The third connection 330 may be fastened, secured, directly connected, or otherwise fluidly connected to a filter 332 that further filters dust and solid particulates from the fluid or compressed air. The filter 332 may be fastened, secured, directly connected, or otherwise fluidly connected to a fourth connection 340. The fourth connection 340 may comprise a pipe or a duct. The fourth connection 340 may be fastened, secured, directly connected, or otherwise fluidly connected to a dryer 342 that further dries the fluid or compressed air. The dryer 342 may be fastened, secured, directly connected, or otherwise fluidly connected to a fifth connection 350. The fifth connection 350 may comprise a pipe or a duct. Along the fifth connection 350, a first valve 352 and a second valve 354 may control or restrict a flow of the fluid or the compressed air. In some embodiments, the first valve 352 and the second valve 354 may comprise check valves. In some embodiments, the first valve 352 and the second valve 354 may be electronically controlled. At an end of the fifth connection 350, a first nozzle 356 may direct the fluid or the compressed air towards a sensor 360 to be cleaned, and a second nozzle 358 may also direct the fluid or the compressed air towards the sensor 360. The pressure of the fluid or the compressed air leaving the first nozzle 356 may be a first discharge pressure p_(e1). The pressure of the fluid or the compressed air leaving the second nozzle 358 may be a second discharge pressure p_(e2). The first discharge pressure p_(e1) and the second discharge pressure p_(e2) may be different. A third valve 355 may be disposed between the first nozzle 356 and the second nozzle 358. In some embodiments, the computing system 303 may determine which one or both of the first nozzle 356 and the second nozzle 358 the fluid or compressed air passes through, depending on a desired pressure with which to clean the sensor 360. The desired pressure with which to clean the sensor 360 may be based on a concentration of one or more foreign substances such as dust on the sensor 360, an area within a radius of the sensor 360, and/or an air quality index within a radius of the sensor 360. For example, a higher concentration of one or more foreign substances may indicate that a higher pressure of compressed air may be required to clean the sensor 360. In such a scenario, the computing system 303 may determine that whichever of the first nozzle 356 and second nozzle 358 has a higher discharge pressure is to deliver the compressed air to the sensor 360.

In some embodiments, the sensor cleaning apparatus 300 further comprises a sixth connection 370. The sixth connection 370 may comprise a pipe or a duct. The sixth connection 370 may be fastened, secured, directly connected, or otherwise fluidly connected to a second reservoir 372 that stores an amount of the fluid such as the compressed air. The second reservoir 372 may store the fluid at a second pressure p_(r2). The second pressure p_(r2) may be a different pressure from the first pressure p_(r1). The second reservoir 372 may be fastened, secured, directly connected, or otherwise fluidly connected to a seventh connection 373. The seventh connection 373 may comprise a pipe or a duct. The seventh connection 373 may be fluidly connected to may be fastened, secured, directly connected, or otherwise fluidly connected to a filter 374 that further filters dust and solid particulates from the fluid or compressed air. The filter 374 may be fastened, secured, directly connected, or otherwise fluidly connected to an eighth connection 376. The eighth connection 376 may comprise a pipe or a duct. The eighth connection 376 may be fastened, secured, directly connected, or otherwise fluidly connected to a dryer 378 that further dries the fluid or compressed air. The dryer 378 may be fastened, secured, directly connected, or otherwise fluidly connected to a ninth connection 380. The ninth connection 380 may comprise a pipe or a duct. Along the ninth connection 380, a fourth valve 382 and a fifth valve 384 may control or restrict a flow of the fluid or the compressed air. In some embodiments, the fourth valve 382 and the fifth valve 384 may comprise check valves. In some embodiments, the fourth valve 382 and the fifth valve 384 may be electronically controlled. At an end of the ninth connection 380, a third nozzle 386 may direct the fluid or the compressed air towards the sensor 360 to be cleaned, and a fourth nozzle 388 may also direct the fluid or the compressed air towards the sensor 360. The pressure of the fluid or the compressed air leaving the third nozzle 386 may be a third discharge pressure p_(e3). The pressure of the fluid or the compressed air leaving the fourth nozzle 388 may be a fourth discharge pressure p_(e4). The third discharge pressure p_(e3) and the fourth discharge pressure p_(e4) may be different, and each of the third discharge pressure p_(e3), the fourth discharge pressure p_(e4), the first discharge pressure p_(e1) and the second discharge pressure p_(e2) may be different from one another. A sixth valve 385 may be disposed between the third nozzle 386 and the fourth nozzle 388. In some embodiments, the computing system 303 may determine which ones or any of the third nozzle 386, the fourth nozzle 388, the second nozzle 358, or the first nozzle 356 the fluid or compressed air passes through, depending on a desired pressure with which to clean the sensor 360. The desired pressure with which to clean the sensor 360 may be based on a concentration of one or more foreign substances such as dust on the sensor 360, an area within a radius of the sensor 360, and/or an air quality index within a radius of the sensor 360. For example, a higher concentration of one or more foreign substances may indicate that a higher pressure of compressed air may be required to clean the sensor 360. In such a scenario, the computing system 303 may determine that whichever of the first nozzle 356, second nozzle 358, the third nozzle 386, and the fourth nozzle 388 has a sufficient discharge pressure is to deliver the compressed air to the sensor 360.

In some embodiments, the first discharge pressure p_(e1) and the second discharge pressure p_(e2) may be within a same order of magnitude of each other, and the third discharge pressure p_(e3) and the fourth discharge pressure p_(e4) may be within a same order of magnitude of each other. The first discharge pressure p_(e1) and the second discharge pressure p_(e2), compared to the third discharge pressure p_(e3) and the fourth discharge pressure p_(e4), may be of different orders of magnitude. As only an illustrative example, p_(e1) may be 5 atmospheres and p_(e2) may be 8 atmospheres, whereas p_(e3) may be 50 atmospheres and p_(e4) may be 80 atmospheres. Thus, the computing system 303 may first determine from which of the first reservoir 322 having a first pressure p_(r1) or the second reservoir 372 having a second pressure p_(r2) to expel the compressed air or fluid based on a concentration of the one or more foreign substances on the sensor 360, an amount of cleaning required for the sensor 360, a type of the sensor 360 that is to be cleaned, and/or a type of cleaning operation of the sensor 360. The first pressure p_(r1) and the second pressure p_(r2) may differ, for example, by an order of magnitude from each other. The computing system 303 may then fine-tune an amount of pressure required by selecting from a particular nozzle, either the first nozzle 356 or the second nozzle 358 if the first reservoir 322 is selected, and either the third nozzle 386 or the fourth nozzle 388 if the second reservoir 372 is selected.

In some embodiments, the computing system 303 may control the first valve 352 based on the first pressure p_(r1) inside the first reservoir 322. In some embodiments, both of the first discharge pressure p_(e1) and the second discharge pressure p_(e3) may be lower than p_(r1) due to a pressure loss from the first reservoir 322 to the first nozzle 356 or the second nozzle 358. In some embodiments, both of the third discharge pressure p_(e3) and the fourth discharge pressure p_(e4) may be lower than p_(r2) due to a pressure loss from the second reservoir 372 to the third nozzle 386 or the fourth nozzle 388. The computing system 303 may determine a threshold value or range of values of each of the first discharge pressure p_(e1), the second discharge pressure p_(e2), the third discharge pressure p_(e3) and the fourth discharge pressure p_(e4), indicating a minimum amount of pressure, a maximum amount of pressure, and/or a range of pressures for different types of sensor cleaning operations and/or different types of sensors. For example, the computing system 303 may determine that sensor cleaning operations can be safely and effectively done with an absolute pressure range of 2 to 10 atmospheres in absolute pressure for one type of sensor, and an absolute pressure range of 12 to 15 atmospheres in absolute pressure for another type of sensor. From the threshold values or ranges of values of the of the first discharge pressure p_(e1), the second discharge pressure p_(e2), the third discharge pressure p_(e3) and the fourth discharge pressure p_(e4), the computing system 303 may determine a corresponding threshold value or range of values of p_(r1) and p_(r2) by taking into account actual or expected pressure losses as the compressed air or the fluid is transported from the first reservoir 322 to the first nozzle 356 or the second nozzle 358, or as the compressed air or the fluid is transported from the second reservoir 372 to the third nozzle 386 or the fourth nozzle 388. For example, the computing system 303 may determine that the corresponding range of values of p_(r1) is between 2.5 and 12.5 atmospheres in absolute pressure for the one type of sensor, and the corresponding range of values of p_(r2) is between 15 and 18.75 atmospheres in absolute pressure, based on a 20% pressure loss at a given temperature of the compressed air or the fluid from the first reservoir 322 to the first or second nozzles 356 or 358, or from the second reservoir 372 to the third or fourth nozzles 386 or 388. In some examples, if the current pressure p_(r1) or p_(r2) satisfies the corresponding threshold value or range of values of p_(r1) or p_(r2), the computing system 303 may control the first valve 352 or the fourth valve 382 to allow the fluid or the compressed air to go through the fifth connection 350 or the ninth connection 380 towards one of the first nozzle 356, the second nozzle 358, the third nozzle 386, or the fourth nozzle 388. If the current pressure p_(r1) or p_(r2) fails to satisfy the threshold value or range of values of p_(r1) or p_(r2), the computing system 303 may control the first valve 352 or the fourth valve 382 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 350 or the ninth connection 380 towards one of the first nozzle 356, the second nozzle 358, the third nozzle 386, or the fourth nozzle 388. For example, if the current pressure of p_(r1) is outside the range of 2.5 and 12.5 atmospheres in absolute pressure, the computing system 303 may control the first valve 352 to block a flow of the fluid or compressed air through the fifth connection 350 and prevent the fluid or the compressed air from exiting at the first nozzle 356 or the second nozzle 358. In some embodiments, the computing system 303 may control the first valve 352 to always be open and permit fluid or compressed air to flow through the fifth connection 350.

In some embodiments, the computing system 303 may control an operation of the second valve 354 based on a condition of the sensor 360. The condition of the sensor 360 may comprise a concentration of one or more foreign substances, such as any of dirt, dust, or moisture, on the sensor 360. In some examples, the condition of the sensor 360 may comprise a dust particle concentration in air surrounding the sensor 360, within a threshold distance of the sensor 360, such as a distance within 10 meters of the sensor 360. In some examples, the condition of the sensor 360 may comprise a distribution of dust particle sizes. In some examples, the condition of the sensor 360 may comprise an air quality in the air surrounding the sensor 360. In some examples, a dust sensor positioned at the first nozzle 356 or the second nozzle 358 may determine the dust particle concentration in the surrounding air, and the distribution of dust particle sizes. The dust sensor may comprise an infrared light emitting diode and a photosensor, which may detect the reflected infrared light emitting diode light due to dust particles in air.

If the condition of the sensor 360 indicates that the sensor 360 requires cleaning, for example, if a concentration of one or more foreign substances such as dust satisfies a threshold concentration, the computing system 303 may control the second valve 354 to allow the fluid or the compressed air to go through the fifth connection 350 towards the first nozzle 356 or the second nozzle 358. In some examples, if the average dust particle size satisfies a threshold size, the computing system 303 may control the second valve 354 to allow the fluid or the compressed air to go through the fifth connection 350 towards the first nozzle 356 or the second nozzle 358. In some examples, if the air quality index is higher than a threshold index, the computing system 303 may control the second valve 354 to allow the fluid or the compressed air to go through the fifth connection 350 towards the first nozzle 356 or the second nozzle 358. If the condition of the sensor 360 indicates that the sensor 360 does not require cleaning, for example, if a concentration of one or more foreign substances such as dust falls short of a threshold concentration, the computing system 303 may control the second valve 354 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 350 towards the first nozzle 356 or the second nozzle 358. In some examples, if the average dust particle size falls short of a threshold size, the computing system 303 may control the second valve 354 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 350 towards the first nozzle 356 or the second nozzle 358. In some examples, if the air quality index is less than or equal to a threshold index, the computing system 303 may control the second valve 354 to block the fluid or the compressed air to prevent the fluid or the compressed air from travelling through the fifth connection 350 towards the first nozzle 356 or the second nozzle 358. In some examples, the computing system 303 may control the second valve 354 to always permit the fluid or the compressed air to pass to the first nozzle 356 or the second nozzle 358. In some examples, the computing system 303 may control the second valve 354 to permit the fluid to pass to the first nozzle 356 or the second nozzle 358 as long as the sensor 360 is determined to require cleaning, and to control the second valve 354 to block the fluid or compressed air once the sensor 360 is no longer determined to require cleaning.

In some embodiments, the computing system 303 may control an operation of the second valve 354 based on a traffic condition and/or a road condition. In some examples, if a traffic condition and/or a road condition requires use of the sensor 360, the computing system may control the second valve 354 to block the fluid or the compressed air and prevent the fluid or compressed air from exiting the nozzle 356, in order to prevent the cleaning of the sensor 360. In some examples, the computing system 303 may determine an amount, concentration, or distribution of traffic, and determine whether or not to close off a flow of the fluid or the compressed air through the second valve 354, based on the amount, concentration, or distribution of traffic and/or predicted traffic. For example, if a level of traffic is currently or is predicted to be heavy, the computing system 303 may determine to close off the flow through the second valve 354. In another example, if a road has a high concentration of bumps, or obstacles, or has a high slope, or a weather condition is inclement, the computing system 303 may determine to close off the flow through the second valve 354. In some embodiments, the computing system 303 may control an operation of the fifth valve 384 in a similar manner as described above with respect to the second valve 354.

In some embodiments, the computing system 303 may control an operation of the compressor 302 based on any of: a current velocity of the vehicle 170, a current velocity of one or more other vehicles near the vehicle 170 within a threshold distance of the vehicle 170, a traffic signal, a future predicted velocity of the vehicle 170 or of other nearby vehicles, a desired or preset frequency of cleaning of the sensor 360 and/or other sensors, a current acceleration of the vehicle 170 or of other nearby vehicles, a future acceleration of the vehicle 170 or of other nearby vehicles, or an amount of traffic. In some embodiments, the operation of the compressor 302 may be based on an operating pressure range, also known as an operating range of pressures, of the compressor 302. The operating pressure range of the compressor 302 may be a range of first pressures of p_(r1) inside the first reservoir 322 during which the compressor 302 is turned on to generate the fluid or compressed air, and/or similarly, a range of second pressures of p_(r2) inside the second reservoir 372 during which the compressor 302 is turned on to generate the fluid or compressed air. For example, if the operating pressure range of the compressor 302 is between 5 atmospheres and 10 atmospheres in absolute pressure, corresponding to the first reservoir 322, and between 12 atmospheres and 15 atmospheres in absolute pressure, corresponding to the second reservoir 372, the compressor 302 may be turned on if the first pressure p_(r1) inside the first reservoir 322 is between 5 atmospheres and 10 atmospheres in absolute pressure, or if the second pressure p_(r2) inside the second reservoir 372 is between 12 atmospheres and 15 atmospheres in absolute pressure. In this scenario, the compressor 302 may be turned off if the first pressure p_(r1) inside the first reservoir 322 is outside the operating pressure range of between 5 atmospheres and 10 atmospheres in absolute pressure, and if the second pressure p_(r2) inside the second reservoir 372 is outside the operating pressure range of between 12 atmospheres and 15 atmospheres in absolute pressure. In some embodiments, the controller 303 may control operations of the compressor 302 based on both parameters such as pressures within both the first reservoir 322 and the second reservoir 372. However, the description of the computing system 303 and the compressor 302 may focus on the first reservoir 322 while omitting the second reservoir 372 solely for simplicity purposes below. Corresponding features of the second reservoir 372 are also applicable to the functioning of the computing system 303 and the compressor 302, even if not explicitly mentioned.

In some embodiments, the computing system 303 may, as the first pressure p_(r1) inside the first reservoir 322 decreases, keep the compressor 302 off until the first pressure p_(r1) inside the first reservoir 322 reaches a cutoff pressure. For example, the computing system 303 may keep the compressor 302 off even as the first pressure p_(r1) inside the first reservoir 322 decreases below 10 atmospheres absolute pressure, until the first pressure p_(r1) inside the first reservoir 322 reaches a cutoff pressure of, for example, 2 atmospheres, and then turn on the compressor 302. In this manner, the computing system 303 may ensure at least a residual supply of fluid or compressed air inside the first reservoir 322.

In some embodiments, the operating range of pressures of p_(r1) inside the first reservoir 322, and the operating range of pressures of p_(r2) inside the first reservoir 372 over which the compressor 302 operates, may be determined or changed based on any of, or a combination of, a current velocity of the vehicle 170, a traffic signal, a future predicted velocity of the vehicle 170, a desired or preset frequency of cleaning of the sensor 360 and/or other sensors, a current acceleration of the vehicle 170, a future acceleration of the vehicle 170, or an amount of traffic. In some examples, if the vehicle 170 is in an idle state or an engine off state, the operating range of first pressures of p_(r1) inside the first reservoir 322, over which the compressor 302 operates, may be adjusted to be narrower compared to the operating range of first pressures of p_(r1) inside the first reservoir 322 if the vehicle 170 were actually driving. For example, if the vehicle 170 were in an idle state or an engine off state, the operating range of first pressures of p_(r1) inside the first reservoir 322 may only be from 1 atmosphere to 5 atmospheres absolute pressure compared to 1 atmosphere to 10 atmospheres absolute pressure in the scenario in which the vehicle 170 were actually driving. In such a scenario, the operating range of second pressures of p_(r2) inside the second reservoir 372 may only be from 12.5 atmospheres to 14.5 atmospheres absolute pressure compared to 12 atmospheres to 15 atmospheres absolute pressure in the scenario in which the vehicle 170 were actually driving. Additionally, the cutoff pressure of p_(r1) may be 1.5 atmospheres if the vehicle 170 were in an idle state or an engine off state compared 2 atmospheres in the scenario in which the vehicle 170 were actually driving. Thus, the computing system 303 may wait until the first pressure p_(r1) inside the first reservoir 322 drops to 1.5 atmospheres before actually turning on the compressor 302. Therefore, when the vehicle 170 is idle, has its engine off, or is otherwise not operating, the computing system 303 may control the compressor 302 to operate less frequently and generate less noise. In some embodiments, the computing system 303 may predict a specific time at which the vehicle 170 switches from an engine off state and turns on the engine, or when the vehicle 170 switches from the idle state to a driving state, for example, when a traffic light turns from red to green, or after the vehicle restarts following a stop sign. The computing system 303 may synchronize the predicted time of the switch from the engine off state or from the idle state with an adjustment of the operating pressure range of the compressor 302. For example, the computing system 303 may adjust the operating pressure range of the compressor 302 at a same time as the predicted time of the switch. For example, if the predicted time of the switch is at 10:00 AM GMT, the computing system 303 may adjust the operating pressure range of the compressor 302 by widening the operating range of first pressures of p_(r1) at the same time as the predicted time of the switch. For example, the operating pressure range of the compressor 302 may be widened from a range between 1 atmosphere and 5 atmospheres absolute pressure to a range between 1 atmosphere and 8 atmospheres absolute pressure.

In some embodiments, an increase in a velocity of the vehicle 170, and/or an increase in a frequency of engine rotation of the vehicle 170, may cause or result in a widening in the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates. For example, if the current velocity of the vehicle 170 is 70 miles per hour, the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates may be 1 atmosphere to 7 atmospheres absolute pressure. If the velocity of the vehicle 170 increases to 80 miles per hour, the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates may be 1 atmosphere to 8 atmospheres absolute pressure. If the velocity of the vehicle 170 decreases to 60 miles per hour, the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates may be 1 atmosphere to 6 atmospheres absolute pressure. In some embodiments, in response to the velocity of the vehicle 170 increasing, the cutoff pressure may also increase, for example, from 2.1 atmospheres to 2.4 atmospheres absolute pressure. In some embodiments, an upper bound of the operating range of pressures of p_(r1) inside the first reservoir 322, in absolute pressure, may be proportional to the current velocity of the vehicle 170 or the frequency of engine rotation of the vehicle 170, in revolutions per minute (RPM), while a lower bound of the operating range of first pressures of p_(r1) inside the first reservoir 322 may be kept constant over all predicted future velocities or predicted frequencies of engine rotation. In some embodiments, for example, with regard to the operating range of pressures of p_(r2) inside the second reservoir 372, both an upper bound and a lower bound may be changed based on a predicted future velocity or a predicted frequency of engine rotation. The cutoff pressure of the first reservoir 322 may be regulated in a correlated manner with the upper bound of the operating range. Thus, in response to the upper bound of the operating range increasing, the cutoff pressure may also increase. An amount of increase of the cutoff pressure of the first reservoir 322 may be proportional to an amount of increase of the upper bound of the operating range. For example, if the upper bound of the operating range increases from 7 atmospheres absolute pressure to 8 atmospheres absolute pressure, the cutoff pressure may increase from 2.1 atmospheres absolute pressure to 2.4 atmospheres absolute pressure.

Similarly, an increase in a predicted future velocity of the vehicle 170, and/or an increase in a predicted future frequency of engine rotation of the vehicle 170, may cause or result in a widening in the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates. In some embodiments, in response to the predicted velocity of the vehicle 170 increasing, or in response to the predicted frequency of engine rotation of the vehicle 170 increasing, the cutoff pressure may also increase, for example, from 2.1 atmospheres to 2.4 atmospheres. In some examples, an upper bound of the operating range of first pressures of p_(r1) inside the first reservoir 322, in absolute pressure, may be proportional to the predicted future velocity of the vehicle 170 or the predicted frequency of engine rotation of the vehicle 170, while a lower bound of the operating range of first pressures of p_(r1) may be kept constant over all predicted future velocities or predicted frequencies of engine rotation. In other examples, on the other hand, an increase in a predicted future velocity of the vehicle 170, and/or an increase in a predicted future frequency of engine rotation of the vehicle 170, may cause or result in a narrowing in the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates. Because the computing system 103 may anticipate that the velocity of the vehicle 170 may increase, which may result in a future increase in a noise level caused by an engine of the vehicle 170, the computing system 103 may control the compressor 302 to operate more frequently when the velocity of the vehicle 170 actually increases and less frequently before the velocity of the vehicle 170 actually increases. The computing system 103 may widen the operating range of first pressures of p_(r1) inside the first reservoir 322 once the velocity of the vehicle 170 actually increases, but narrow the operating range of first pressures of p_(r1) before the velocity of the vehicle 170 increases. The cutoff pressure of the first reservoir 322 may be regulated in a correlated manner with the upper bound of the operating range. Thus, in response to the upper bound of the operating range increasing, the cutoff pressure may also increase. An amount of increase of the cutoff pressure of the first reservoir 322 may be proportional to an amount of increase of the upper bound of the operating range.

Similarly, an increase in an acceleration or a predicted future acceleration of the vehicle 170, may cause or result in a widening in the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates. A decrease in the acceleration or the predicted future acceleration of the vehicle 170 may cause or result in a narrowing in the operating range of first pressures of p_(r1) inside the first reservoir 322 over which the compressor 302 operates. In some embodiments, in response to the acceleration or the predicted acceleration of the vehicle 170 increasing, the cutoff pressure may also increase, for example, from 2.1 atmospheres to 2.4 atmospheres. The amount of increase in the cutoff pressure may be proportional to the increase of the upper bound of the operating range of first pressures of p_(a).

In some embodiments, the controlling the operation of the compressor 302 comprises determining an operating pressure range of the compressor 302 based on a traffic sign or signal. For example, if the vehicle 170 is approaching a red light or stop sign ahead, the computing system 303 may narrow the operating range of first pressures of p_(r1) inside the first reservoir 322 because the vehicle 170 is anticipated to slow down. In some examples, if the vehicle 170 is approaching a traffic light ahead and the vehicle 170 is anticipated to speed up, the computing system 303 may widen the operating range of first pressures of p_(r1) and/or the operating range of second pressures of p_(r2). In some examples, the computing system 303 may determine an amount, concentration, or distribution of traffic, and determine an operating pressure range of the compressor based on the amount, concentration, or distribution of traffic and/or predicted traffic. For example, if the traffic is predicted to increase, the computing system 303 may narrow the operating range of first pressures of p_(r1) and/or the operating range of second pressures of p_(r2) in order to reduce a frequency of operation of the compressor 302 and resulting noise. Additionally, the computing system 303 may reduce a frequency of cleaning the one or more sensors including the sensor 360 in conditions of higher traffic in order to prevent interference with a usage of the one or more sensors. In other examples, the computing system 303 may narrow the operating range of first pressures of p_(r1) and/or the operating range of second pressures of p_(r2) in response to harsh road conditions such as bumps, high slope, and/or a concentration of obstacles on a road, in order to prevent interference with a usage of the one or more sensors. In other examples, the computing system 303 may clean sensors in response to harsh road conditions or heavy traffic, only if the sensors to be cleaned have other redundant operational sensors, and/or not clean redundant sensors simultaneously, but rather, space out a cleaning of the redundant sensors over time.

FIG. 4 illustrates an exemplary vehicle on which the sensor cleaning apparatus is being implemented. In FIG. 4 , a vehicle 401, which may be implemented as the vehicle 170 of FIG. 1C, may comprise a LiDAR sensor 402, a first radar 404 located at a rear of the vehicle 401, a first camera 406 located at a rear of the vehicle 401, a second radar 414, a second camera 416, a third radar 424, a third camera 426, a fourth radar 434, a fourth camera 436, a fifth camera 446, and a sixth camera 456. For example, the LiDAR sensor 402 can generate a three-dimensional map of the environment. The LiDAR sensor 402 can also detect objects in the environment. In another example, the radars 404, 414, 424, and 434 can determine distances and speeds of objects around the vehicle 401, and may be configured for adaptive cruise control and/or accident avoidance and blind spot detection. In another example, the cameras 406, 416, 426, 436, 446, and 456 can capture and process image data to detect and identify objects, such as road signs, as well as deciphering content of the objects, such as speed limit posted on the road signs. Such objects may include, but not limited to, pedestrians, road signs, traffic lights, and/or other vehicles, for example. In some embodiments, the cameras 406, 416, 426, 436, 446, and 456 can recognize, interpret, and analyze road signs (e.g., speed limit, school zone, construction zone, etc.) and traffic lights (e.g., red light, yellow light, green light, flashing red light, etc.). The vehicle 401 can also include myriad actuators to propel and navigate the vehicle 401 in the surrounding. Such actuators may include, for example, any suitable electro-mechanical devices or systems to control a throttle response, a braking action, a steering action, etc. In some embodiments, based on image data captured by the cameras 406, 416, 426, 436, 446, and 456, the vehicle 401 can adjust vehicle speed based on speed limit signs posted on roadways. For example, the vehicle 401 can maintain a constant, safe distance from a vehicle ahead (e.g., adaptive cruise control). In this example, the vehicle 401 maintains this safe distance by constantly adjusting its vehicle speed to that of the vehicle ahead.

Corresponding nozzles may be disposed near each of the LiDAR sensor, the radars, and the cameras, within a specified distance of each of the respective sensors, in order to provide compressed air or fluid to clean each of the sensors. Each of the nozzles may be fluidly connected to one or more reservoirs and a compressor, as described with respect to FIG. 1A or FIG. 3 . Each of the nozzles may have a range of discharge pressures specific for the corresponding sensor type and further based on a historical cleaning data for the corresponding sensor, such as, previous pressures of compressed air applied to the corresponding sensor. For example, a first nozzle 403 may correspond to the LiDAR sensor 402, a second nozzle 405 may correspond to the first radar 404, a third nozzle 407 may correspond to the first camera 406, a fourth nozzle 415 may correspond to the second radar 414, a fifth nozzle 417 may correspond to the second camera 416, a sixth nozzle 425 may correspond to the third radar 424, a seventh nozzle 427 may correspond to the third camera 426, an eighth nozzle 435 may correspond to the fourth radar 434, a ninth nozzle 437 may correspond to the fourth camera 436, a tenth nozzle 447 may correspond to the fifth camera 446, and an eleventh nozzle 457 may correspond to the sixth camera 456.

FIG. 5 illustrates an exemplary implementation 500 of the sensor cleaning apparatus. In FIG. 5 , a vehicle 510, which may be implemented as the vehicle 401 of FIG. 4 or the vehicle 170 of FIG. 1C, may be driving on a road with other vehicles 520, 530, 540, 550, and 560. In some examples, the computing system 103 or 303 of the vehicle 510 may determine an amount, concentration, or distribution of traffic, and determine an operating pressure range of the compressor 102 or 302 based on the amount, concentration, or distribution of traffic and/or predicted traffic. The computing system 103 or 303 may determine one or more operating ranges of pressures corresponding to one or more respective reservoirs based on the amount, concentration, or distribution of traffic or predicted traffic, a velocity or acceleration of the vehicle 510, and/or a velocity or acceleration of one or more other vehicles 520, 530, 540, 550, and/or 560.

FIG. 6 illustrates a flowchart of a method according to some embodiments. In this and other flowcharts, the flowchart 600 illustrates by way of example a sequence of steps. It should be understood the steps may be reorganized for parallel execution, or reordered, as applicable. Moreover, some steps that could have been included may have been removed to avoid providing too much information for the sake of clarity and some steps that were included could be removed, but may have been included for the sake of illustrative clarity. The description from other FIGS. may also be applicable to FIG. 6 .

In step 602, a fluid such as compressed air may be generated by a compressor of a vehicle. In step 604, one or more processors of the vehicle may determine a current velocity of the vehicle. In step 606, one or more processors of the vehicle may control an operation of the compressor based on the current velocity of the vehicle. In step 608, one or more processors of the vehicle may control one or more nozzles to output the fluid to clean one or more respective sensors. The one or more nozzles may be connected to or in fluid communication with the compressor.

Hardware Implementation

The techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include circuitry or digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, server computer systems, portable computer systems, handheld devices, networking devices or any other device or combination of devices that incorporate hard-wired and/or program logic to implement the techniques.

Computing device(s) are generally controlled and coordinated by operating system software, such as iOS, Android, Chrome OS, Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris, iOS, Blackberry OS, VxWorks, or other compatible operating systems. In other embodiments, the computing device may be controlled by a proprietary operating system. Conventional operating systems control and schedule computer processes for execution, perform memory management, provide file system, networking, I/O services, and provide a user interface functionality, such as a graphical user interface (“GUI”), among other things.

FIG. 7 is a block diagram that illustrates a computer system 700 upon which any of the embodiments described herein may be implemented. The computer system 700 includes a bus 702 or other communication mechanism for communicating information, one or more hardware processors 704 coupled with bus 702 for processing information. Hardware processor(s) 704 may be, for example, one or more general purpose microprocessors.

The computer system 700 also includes a main memory 706, such as a random access memory (RAM), cache and/or other dynamic storage devices, coupled to bus 702 for storing information and instructions to be executed by processor 704. Main memory 706 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 704. Such instructions, when stored in storage media accessible to processor 704, render computer system 700 into a special-purpose machine that is customized to perform the operations specified in the instructions.

The computer system 700 further includes a read only memory (ROM) 708 or other static storage device coupled to bus 702 for storing static information and instructions for processor 704. A storage device 710, such as a magnetic disk, optical disk, or USB thumb drive (Flash drive), etc., is provided and coupled to bus 702 for storing information and instructions.

The computer system 700 may be coupled via bus 702 to output device(s) 712, such as a cathode ray tube (CRT) or LCD display (or touch screen), for displaying information to a computer user. Input device(s) 714, including alphanumeric and other keys, are coupled to bus 702 for communicating information and command selections to processor 704. Another type of user input device is cursor control 716, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 704 and for controlling cursor movement on display 712. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. In some embodiments, the same direction information and command selections as cursor control may be implemented via receiving touches on a touch screen without a cursor.

The computing system 700 may include a user interface module to implement a GUI that may be stored in a mass storage device as executable software codes that are executed by the computing device(s). This and other modules may include, by way of example, components, such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.

In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, Java, C or C++. A software module may be compiled and linked into an executable program, installed in a dynamic link library, or may be written in an interpreted programming language such as, for example, BASIC, Perl, or Python. It will be appreciated that software modules may be callable from other modules or from themselves, and/or may be invoked in response to detected events or interrupts. Software modules configured for execution on computing devices may be provided on a computer readable medium, such as a compact disc, digital video disc, flash drive, magnetic disc, or any other tangible medium, or as a digital download (and may be originally stored in a compressed or installable format that requires installation, decompression or decryption prior to execution). Such software code may be stored, partially or fully, on a memory device of the executing computing device, for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The modules or computing device functionality described herein are preferably implemented as software modules, but may be represented in hardware or firmware. Generally, the modules described herein refer to logical modules that may be combined with other modules or divided into sub-modules despite their physical organization or storage.

The computer system 700 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 700 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 700 in response to processor(s) 704 executing one or more sequences of one or more instructions contained in main memory 706. Such instructions may be read into main memory 706 from another storage medium, such as storage device 710. Execution of the sequences of instructions contained in main memory 706 causes processor(s) 704 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

The term “non-transitory media,” and similar terms, as used herein refers to any media that store data and/or instructions that cause a machine to operate in a specific fashion. Such non-transitory media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 710. Volatile media includes dynamic memory, such as main memory 706. Common forms of non-transitory media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, and networked versions of the same.

Non-transitory media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between non-transitory media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 702. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.

Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 704 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 700 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 702. Bus 702 carries the data to main memory 706, from which processor 704 retrieves and executes the instructions. The instructions received by main memory 706 may retrieves and executes the instructions. The instructions received by main memory 706 may optionally be stored on storage device 710 either before or after execution by processor 704.

The computer system 700 also includes a communication interface 718 coupled to bus 702. Communication interface 718 provides a two-way data communication coupling to one or more network links that are connected to one or more local networks. For example, communication interface 718 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 718 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN (or WAN component to communicated with a WAN). Wireless links may also be implemented. In any such implementation, communication interface 718 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

A network link typically provides data communication through one or more networks to other data devices. For example, a network link may provide a connection through local network to a host computer or to data equipment operated by an Internet Service Provider (ISP). The ISP in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet”. Local network and Internet both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link and through communication interface 718, which carry the digital data to and from computer system 700, are example forms of transmission media.

The computer system 700 can send messages and receive data, including program code, through the network(s), network link and communication interface 718. In the Internet example, a server might transmit a requested code for an application program through the Internet, the ISP, the local network and the communication interface 718.

The received code may be executed by processor 704 as it is received, and/or stored in storage device 710, or other non-volatile storage for later execution.

Each of the processes, methods, and algorithms described in the preceding sections may be embodied in, and fully or partially automated by, code modules executed by one or more computer systems or computer processors comprising computer hardware. The processes and algorithms may be implemented partially or wholly in application-specific circuitry.

The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described blocks or states may be performed in an order other than that specifically disclosed, or multiple blocks or states may be combined in a single block or state. The example blocks or states may be performed in serial, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.

Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.

Any process descriptions, elements, or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art.

It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure. The foregoing description details certain embodiments of the invention. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the invention can be practiced in many ways. As is also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the invention with which that terminology is associated. The scope of the invention should therefore be construed in accordance with the appended claims and any equivalents thereof

Engines, Components, and Logic

Certain embodiments are described herein as including logic or a number of components, engines, or mechanisms. Engines may constitute either software engines (e.g., code embodied on a machine-readable medium) or hardware engines. A “hardware engine” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware engines of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware engine that operates to perform certain operations as described herein.

In some embodiments, a hardware engine may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware engine may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware engine may be a special-purpose processor, such as a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC). A hardware engine may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware engine may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, hardware engines become specific machines (or specific components of a machine) uniquely tailored to perform the configured functions and are no longer general-purpose processors. It will be appreciated that the decision to implement a hardware engine mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.

Accordingly, the phrase “hardware engine” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented engine” refers to a hardware engine. Considering embodiments in which hardware engines are temporarily configured (e.g., programmed), each of the hardware engines need not be configured or instantiated at any one instance in time. For example, where a hardware engine comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware engines) at different times. Software accordingly configures a particular processor or processors, for example, to constitute a particular hardware engine at one instance of time and to constitute a different hardware engine at a different instance of time.

Hardware engines can provide information to, and receive information from, other hardware engines. Accordingly, the described hardware engines may be regarded as being communicatively coupled. Where multiple hardware engines exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware engines. In embodiments in which multiple hardware engines are configured or instantiated at different times, communications between such hardware engines may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware engines have access. For example, one hardware engine may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware engine may then, at a later time, access the memory device to retrieve and process the stored output. Hardware engines may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).

The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented engines that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented engine” refers to a hardware engine implemented using one or more processors.

Similarly, the methods described herein may be at least partially processor-implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented engines. Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an Application Program Interface (API)).

The performance of certain of the operations may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processors or processor-implemented engines may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the processors or processor-implemented engines may be distributed across a number of geographic locations.

Language

Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.

Although an overview of the subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure. Such embodiments of the subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or concept if more than one is, in fact, disclosed.

The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.

It will be appreciated that an “engine,” “system,” “data store,” and/or “database” may comprise software, hardware, firmware, and/or circuitry. In one example, one or more software programs comprising instructions capable of being executable by a processor may perform one or more of the functions of the engines, data stores, databases, or systems described herein. In another example, circuitry may perform the same or similar functions. Alternative embodiments may comprise more, less, or functionally equivalent engines, systems, data stores, or databases, and still be within the scope of present embodiments. For example, the functionality of the various systems, engines, data stores, and/or databases may be combined or divided differently.

“Open source” software is defined herein to be source code that allows distribution as source code as well as compiled form, with a well-publicized and indexed means of obtaining the source, optionally with a license that allows modifications and derived works.

The data stores described herein may be any suitable structure (e.g., an active database, a relational database, a self-referential database, a table, a matrix, an array, a flat file, a documented-oriented storage system, a non-relational No-SQL system, and the like), and may be cloud-based or otherwise.

The various features and processes described above may be used independently of one another or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of the invention. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described blocks or states may be performed in an order other than that specifically disclosed or multiple blocks or states may be combined in a single block or state. The example blocks or states may be performed in serial, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed partially, substantially, or entirely concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

As used herein, the term “or” may be construed in either an inclusive or exclusive sense. Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, engines, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present disclosure. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present disclosure as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment. In addition, it should be appreciated that any operation, element, component, data, or the like described herein as being based on another operation, element, component, data, or the like can be additionally based on one or more other operations, elements, components, data, or the like. Accordingly, the phrase “based on,” or variants thereof, should be interpreted as “based at least in part on.”

For example, “is to be” could mean, “should be,” “needs to be,” “is required to be,” or “is desired to be,” in some embodiments.

In the following description, certain specific details are set forth in order to provide a thorough understanding of various embodiments of the invention. However, one skilled in the art will understand that the invention may be practiced without these details. Moreover, while various embodiments of the invention are disclosed herein, many adaptations and modifications may be made within the scope of the invention in accordance with the common general knowledge of those skilled in this art. Such modifications include the substitution of known equivalents for any aspect of the invention in order to achieve the same result in substantially the same way.

Unless the context requires otherwise, throughout the present specification and claims, the word “comprise” and variations thereof, such as, “comprises” and “comprising” are to be construed in an open, inclusive sense, that is as “including, but not limited to.” Recitation of numeric ranges of values throughout the specification is intended to serve as a shorthand notation of referring individually to each separate value falling within the range inclusive of the values defining the range, and each separate value is incorporated in the specification as it were individually recited herein. Additionally, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. The phrases “at least one of,” “at least one selected from the group of,” or “at least one selected from the group consisting of,” and the like are to be interpreted in the disjunctive (e.g., not to be interpreted as at least one of A and at least one of B).

Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment, but may be in some instances. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

Although the invention(s) have been described in detail for the purpose of illustration based on what is currently considered to be the most practical and preferred implementations, it is to be understood that such detail is solely for that purpose and that the invention is not limited to the disclosed implementations, but, on the contrary, is intended to cover modifications and equivalent arrangements that are within the spirit and scope of the appended claims. For example, it is to be understood that the present invention contemplates that, to the extent possible, one or more features of any embodiment can be combined with one or more features of any other embodiment.

The foregoing description of the present invention(s) have been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. The breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments. Many modifications and variations will be apparent to the practitioner skilled in the art. The modifications and variations include any relevant combination of the disclosed features. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence. 

What is claimed is:
 1. An apparatus, comprising: one or more sensors; nozzles configured to output fluid to clean the respective one or more sensors; a compressor configured to generate the fluid, the compressor being in fluid communication with the nozzles; reservoirs disposed between the compressor and the nozzles, each of the reservoirs configured to store an amount of the fluid, and exit pressures being different at each of the respective nozzles; and a computing system comprising: one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the computing system to perform: determining a concentration of one or more foreign substances on or within a threshold distance of a sensor of the one or more sensors; and selecting one of the reservoirs from which to expel a portion of the fluid based on the determined concentration of the one or more foreign substances.
 2. The apparatus of claim 1, wherein the selecting of the one or more reservoirs is based on an average particle size of the one or more foreign substances.
 3. The apparatus of claim 1, wherein the selecting of the one or more reservoirs is based on a distribution of particle sizes of the one or more foreign substances.
 4. The apparatus of claim 1, wherein the selecting of the one or more reservoirs is based on an air quality index within a radius surrounding the one or more sensors.
 5. The apparatus of claim 1, wherein the one or more sensors comprise a LiDAR sensor, a radar sensor, and a camera.
 6. The apparatus of claim 1, wherein the instructions further cause the system to: synchronize an adjustment of an operating pressure range of the compressor with a predicted switch of an engine status.
 7. The apparatus of claim 1, wherein the instructions further cause the system to: synchronize an adjustment of an operating pressure range of the compressor with a change in a frequency of rotation of the engine.
 8. The apparatus of claim 1, wherein the instructions further cause the system to: synchronize an adjustment of an operating pressure range of the compressor with a change in a frequency of rotation of the engine.
 9. The apparatus of claim 1, wherein the selecting of the one of the reservoirs from which to expel a portion of the fluid based on the determined concentration of the one or more foreign substances comprises selecting a reservoir having a higher discharge pressure if the concentration of the one or more foreign substances is above a threshold.
 10. The apparatus of claim 1, wherein the instructions further cause the system to: selectively block a valve that controls flow through at least one of the reservoirs based on a slope of a road or a concentration of bumps on the road.
 11. A method, comprising: generating, by a compressor of a vehicle, a fluid; storing an amount of the fluid in each of reservoirs disposed between the compressor and a nozzle of the one or more nozzles; determining a concentration of one or more foreign substances on or within a threshold distance of a sensor of one or more sensors; and selecting one of the reservoirs from which to expel a portion of the fluid based on the determined concentration of the one or more foreign substances.
 12. The method of claim 11, wherein the selecting of the one or more reservoirs is based on an average particle size of the one or more foreign substances.
 13. The method of claim 11, wherein the selecting of the one or more reservoirs is based on a distribution of particle sizes of the one or more foreign substances.
 14. The method of claim 11, wherein the selecting of the one or more reservoirs is based on an air quality index within a radius surrounding the one or more sensors.
 15. The method of claim 11, wherein the one or more sensors comprise a LiDAR sensor, a radar sensor, and a camera.
 16. The method of claim 11, further comprising: synchronizing an adjustment of an operating pressure range of the compressor with a predicted switch of an engine status.
 17. The method of claim 11, further comprising: synchronizing an adjustment of an operating pressure range of the compressor with a change in a frequency of rotation of the engine.
 18. The method of claim 11, further comprising: synchronizing an adjustment of an operating pressure range of the compressor with a change in a frequency of rotation of the engine.
 19. The method of claim 11, wherein the selecting of the one of the reservoirs from which to expel a portion of the fluid based on the determined concentration of the one or more foreign substances comprises selecting a reservoir having a higher discharge pressure if the concentration of the one or more foreign substances is above a threshold.
 20. The method of claim 11, further comprising: selectively blocking a valve that controls flow through at least one of the reservoirs based on a slope of a road or a concentration of bumps on the road. 